perm filename CS144[2,DBL] blob sn#023361 filedate 1973-02-05 generic text, type T, neo UTF8
00100	2/5/73 CS 144A
00200	   PROBLEM 1 DEALT WITH MODIFYING INSTRUCS.
00300	  PROBLEM 2 DEALS WITH DESIGNING A DATA STRUCTURE FOR MESSAGE
00400	      TAKING AND HANDLING:
00500	     CIRCULAR LIST, DOUBLY LINKED LIST STRUCTURE SUGGESTED
00600	
00700	      A QUEUE IS PROBABLY THE BEST, SINCE WE ONLY NEED DELETE
00800	    THE OLDEST MESSAGES ...
00900	SO ALLOCATEE ALL MEEMORY AS A SEQUENTIAL QUEUE
01000	    BUT IT MIGHT BE BETTER TO LINK THEM POINTING BACKWARDS...
01100	
01200	ACTUALLY, THE DOUBLY-LINKED SIMULATED BY 1 LINK IS APPLICABLEE HERE...
01300	
01400	EACH MESSAGE BELONGS TO  A  DATED  QUEUE, AND ALSO TO 1 OR MORE
01500	USERS' QUEUES.
01600	
01700	FOR EACH USER, WE KEEP A POINTER TO THE FIRST MESSAGE IN THE DATED Q,
01800	    AND TO THE FIRST OF HIS MESSAGES
01900	   AND TO THE LAST MESSAGGE
02000	
02100	WHEN A MSG  COMES IN..
02200	IF IT FITS..
02300	CHANGE THE POINTER TO REAR
02400	AND INSERT THE MESSAGE
02500	
02600	KEEP 20 LOACAATIONS, ONE FOR EACH USER, SO THAT WHEN GUY 5 COMES IN, WE
02700	LOOK IN THE FIFTH LOC, GET THE ADDRESS OF THE FIRST MESSAGE FOR THIS
02800	GUY, GET IT, AND FOLLOW THE POINTER TO THE NEXT MESSAGE FOR THIS GUY...
02900	  BUT WHAT IF A MESSAGE IS FOR SEVERAL GUYS.
03000	HOW DO WE KNOW WHICH IS THE OLDEST MESSAGE???
03100	POINTER FRONT SHOULD POINT TO THE OLDEST ABSOLUTE MESSSAGE...
03200	POINTER FROM USER IS ALSO DOUBLY DIRECTED